Если E - алгоритм шифрования, то A генерирует 4n параметров проверки { (Xi,Yi,Ui,Vi): 1<= i <= n}, где Xi и Yi - величины, подаваемые на вход E и связанные соотношениями
Ui = E(Xi,ai), Vi = E(Yi,bi), 1 <= i < n.Параметры проверки заранее посылаются получателю B и третьему доверенному лицу.
Чтобы подписать n-битовое сообщение m=(m1,..,mn), пользователь A применяет следующую
процедуру: его подпись будет цепочкой
S = S1 ..Sn,
где для каждого i
Si = ai, если mi =0,
Si = bi, если mi =1.
Пользователь B проверяет подпись следующим образом: для каждого i
(0 <= i <= n) он использует бит mi и ключ Si, чтобы проверить:
если mi = 0, то E(Xi,Si) = Ui,
если mi = 1, то E(Yi,Si) = Vi.Пользователь B принимает подписанное сообщение за истинное только в том случае, если при процедуре проверки эти равенства выполнены для каждого L.
Эта система проста в использовании, но у нее есть, по крайней мере, два очевидных недостатка. Во-первых, необходима предварительная передача параметров проверки. Во-вторых, что более важно, подпись сильно увеличивает длину сообщения. Если в криптосистеме используются ключи длиной, скажем, 64 бита, то длина подписанного сообщения увеличится в 64 раза.